1. Field
Embodiments of the invention relate to the field of computer graphics; and more specifically, to color management.
2. Background
Color management is used to provide consistent color across disparate sources. For example, a display can only display colors within its gamut (e.g., within its particular subset of the visible color space). Other devices (e.g., printer, scanner, camera (still and/or video), etc.) may have different gamuts. The color space associated with the source (e.g., an image) is approximately matched to the colors on the destination (e.g., a display).
Each device and/or image may be associated with one or more color profiles. A profile includes data that describes a particular color gamut. Commonly, color profiles conform to the International Color Consortium (ICC) standard (e.g., as exemplary described in International Color Consortium (ICC) Specification ICC.1:2004-10, 2004). The profile associated with the image (and which describes the color gamut associated with the image) is typically called the source profile. The profile associated with the destination of the image (e.g., an output device) is called the destination profile. For example, if the image is to be drawn on a display, color matching is performed using the display's profile (the destination profile) and the image's profile (the source profile) to match the colors of the image to the display gamut. An intermediate color space, known as a profile connection space (PCS) may be used during color management. For example, during color matching, the source color space is matched to the destination color space through the PCS.
It may be necessary to approximate a color in case the destination device does not support a particular color from the source image (e.g., that color is out of gamut of the destination device). Each profile may be tagged with a default rendering intent, which influences how the colors are approximated. The following rendering intents are commonly used: perceptual, saturation, relative colorimetric, and absolute colorimetric.
In the case of performing color matching of an image to a display, typically the color matching is performed on the image prior to the image being sent to the graphics card. After color matching, the color corrected image is stored and sent to the graphics card. For example, color matching is performed by the CPU and the color corrected image is stored in system memory (e.g., a backing store). The graphics card performs compositing and the image is drawn on the display.